[レポート]絶対便利!Game Server Services の魅力 #gtmfjp2024
こんにちは、ゲームソリューション部兼業務効率化ソリューション部の兼本です。
本エントリは、2024年7月9日に秋葉原UDXで開催されたゲーム開発者向けのソリューション展示会「GTMF(Game Tools & Middleware Forum)」内で開催されたGame Server Service社のセッション「絶対便利!Game Server Services の魅力」に関するレポートです。
GTMFとは?
GTMF(Game Tools & Middleware Forum)はゲーム開発向けのツールやミドルウェアなどのソリューションに特化し、新たな開発技術を求めるゲームクリエイターとソリューションのベンダーを効率よくマッチングする展示会です。
なんと2003年に初開催して今年で19回目の開催ということです!
セッション概要
タイトル:
絶対便利!Game Server Services の魅力
スピーカー:
Game Server Services 株式会社 代表取締役 CEO 丹羽 一智氏セッション概要:
Game Server Services(GS2) はサービス提供開始から4年が経過し、多くの機能が実装されました。
1つのゲームに最適化するのではなく、多くのゲームの開発をより便利に行えるようにするためにリソースが割かれてきました。
結果として、既にGS2は既存の多くのゲームサーバーより便利に扱えるようになっているはずです。
このセッションでは、GS2が提供する機能の中でも自社開発のゲームサーバーではフォローできておらず毎回苦労しているであろう機能を中心に、GS2の魅力をお伝えしたいと思います。
イントロダクション
- ここ10年でゲーム業界に起きたイノベーションのひとつはUnityやUnreal Engineなど汎用ゲームエンジンの隆盛
- 特にモバイルゲームやPCゲームにおける汎用ゲームエンジンの普及率が高い
- 一方で、家庭用ゲーム機にはUnityやEnrealエンジンの活用には至ってない
- これは、すでに社内でゲームエンジンを開発できる技術があったので、新しいエンジンを採用する理由がなかったためと考えている
- 最近では日本製のゲーム競争力が低下しており、世界中で遊ばれる日本製ゲームも減少している
- スライドで赤く色がついているのが海外発のゲーム(実際にはプロダクト名がたくさん表示されていましたが、念のためモザイク処理しています)
- 日本初のゲームが減ってきているのはさみしい
- そのためにゲームのバックエンドで必要とされている機能をAPIとして使える汎用ゲームエンジンを開発した
Game Server Servicesの機能
- Game Server Service(以下GS2)では、様々な機能を提供している
- アカウント管理
- 匿名アカウント発行・認証
- アカウント引き継ぎ
- アカウントBAN(永続・期間限定)
- バイナリデータストレージ
- 任意のバイナリデータをアップロード・ダウンロード
- データにアクセス可能なプレイヤーを制限可能
- 過去30日分のデータは世代管理され、いつでもアクセス可能
- 図鑑
- アイテムやキャラクターを所持したことがあるかのフラグ管理
- エンチャント・ランダムパラメータ
- 複数のパラメーターの合計が100%になるようにランダムに配分
- 一部パラメーターを固定して残りの割合を再配分
- ランダムな数量のエンチャントを付与
- 攻撃力+50・攻撃力+30・防御力+50・防御力+30 のようなパラメーター
- ランダムエンチャントを後から追加も可能
- 強化
- 強化素材を消費して経験値に変換
- 大成功(経験値変換効率150%)のような実装も可能
- 経験値
- 経験値・レベルの管理
- レベルキャップをプロパティ毎に個別に引き上げ可能
- グレード・レアリティ
- GS2 で管理するリソースを消費して、GS2-Experience で管理するレベルキャップの引き上げ
- 編成
- 装備やパーティの編成を保持する機能
- 編成を複数パターン保持可能
- 保持可能な編成数をプレイヤー毎に個別に引き上げ可能
- プレイヤーではなく、アイテムや装備に紐づく編成を保持することも可能
- プレゼントボックス
- プレイヤー毎のメッセージボックス
- 有効期限付きのメッセージ
- 報酬付きのメッセージ
- 全てのプレイヤーが受け取れるグローバルメッセージ
- メンテナンスのお詫びの配布など
- インベントリ
- 容量付き
- 1容量で「ポーションx99」のようにスタックして保持する設定も可能
- スタック容量を溢れたときに2スタック目を作るかを設定も可能
- インベントリ毎に個別に容量を拡張可能
- シンプル
- 容量制限がない代わりに1APIコールで複数のアイテムを入手・消費可能
- ビッグ
- 64bit整数値を超える所持数量を保存可能
- 容量付き
- ミッション・実績
- ゲーム内で何かを達成するとゲーム内アイテムなどの報酬がもらえる仕組み
- デイリー・ウィークリー・マンスリーでミッション期間を設定可能
- 課金通貨の管理
- 資金決済法(自家型) に該当するゲーム内通貨を管理
- 各種ストアプラットフォームが発行するレシートの検証
- 残高の加算・減算
- プレイヤーが所有する残高は購入価格・購入通貨種別を保持した状態で管理
- サービス終了時の返金時などにも利用できる状態でデータを管理
- 未使用残高を購入通貨種別毎に毎日算出
- 資金決済法に該当するかを判断可能
- プラットフォーム毎に異なるウォレットで残高を管理可能
- 無償通貨(価値が0円)はプラットフォームを跨いで共有可能
- クエスト進行管理
- ゲーム内のクエストの進行を管理
- クエストの挑戦コスト、クリア報酬、初回クリア報酬、失敗報酬を設定可能
- 報酬の内容はインゲームの結果を元に減らすことが可能
- クエストには挑戦可能期間を設定可能
- クエストは一次元的な構造だけでなく分岐も可能
- スキルツリー
- プレイヤーや施設の自由度の高い成長を実現
- ノードを解放するには一定のコストを払う必要がある
- ノードには前提ノードを設定可能で、順番に解放する必要があるように設定可能
- 解放したノードを未開放に戻すことができる
- 支払ったコストは返却される(一部未対応なリソースあり)
- ノードの解放は一括で行える
- スタミナ
- 現実時間の経過で回復する値
- スタミナ回復アイテムを使用したときに自然回復の最大値を超えて回復できる仕組みがある
- 広告リワード
- 各種アドネットワークの広告視聴コールバックのハンドリング
- 広告視聴完了時にポイント加算
- ポイントを消費して各種リワードを付与
- 交換
- GS2内の何らかのリソースを消費して、何らかのリソースを入手
- 汎用性が高くさまざまな用途に利用可能
- 交換実行から一定の現実時間経過後にリソースを入手する使用も実装可能
- アイテムや課金通貨を消費して待機時間を短縮することも可能
- 交換するたびにコストが上昇するような交換レートも実装可能
- 放置報酬
- 放置時間によって得られる報酬
- 放置報酬で1時間毎に特別な報酬が得られるような柔軟な報酬設定
- 放置報酬にランダム要素のある報酬を設定可能
- 実際に受け取りを実行するまでは抽選結果を保持するので変わらない
- 回数制限
- GS2-Exchange の交換回数や、GS2-Quest のクエスト挑戦回数を制限
- 毎日・毎週・毎月リセット可能
- ログインボーナス
- 毎日ログインするだけでもらえる報酬
- ログインし忘れると歯抜けになるスケジュールモード
- ログインし忘れると最後の報酬を受け取れなくなるストリーミングモード
- ストリーミングモードは繰り返し設定も可能
- アイテムや課金通貨を消費して見逃し受け取りも可能
- 抽選(ガチャ)
- ガチャの抽選機能を実装
- 確率設定は重みベース(1:2:4 = 14.285%:28.571%:57.143%)
- 確率テーブルは入れ子が可能
- R 90, SR 7, SSR, 3
- R => R-0001 1, R-0002 1, R-0003 1
- R 90, SR 7, SSR, 3
- BOXガチャ
- 景品毎の排出数量制限(物理景品向け)
- ゲーム内ストア
- ゲーム内アイテムの販売の仕組み
- 固定の陳列棚
- ランダム陳列棚
- デイリーストアのような日替わりで購入回数制限があるような陳列棚
- コストを支払うことで陳列棚をリセット可能
- シリアルキー
- 各種特典でシリアルキーを配布し、ゲーム内でシリアルキーを入力することでゲーム内アイテムを入手可能
- 同じ番号は1回使ったら使えなくなるシリアルキー
- 同じ番号を全員が共有し、1回受け取ったら受け取れなくなる共通シリアルキー
- テキストチャット
- ルームごとにテキストベースのタイムラインを保持
- パスワードによるルームアクセス制限
- 新着メッセージ投稿時にインゲーム通知またはモバイルプシュ通知
- フレンド・フォロー
- 単方向のプレイヤー間の関係性を保持するフォロー
- 双方向のプレイヤー間の関係性を保持するフレンド
- 申請・承認プロセスを保持
- プロフィールの保持
- 公開プロフィール・フレンドに対してのプロフィール・フォロワーに対してのプロフィールといったスコープ毎の値を保持可能
- ブラックリスト保持
- ギルド
- 複数のプレイヤーでチームを作る機能
- ギルドメンバーの参加申請・承認・自動承認
- ギルドメンバー毎の権限管理
- 開発側で用意する権限プリセット
- プレイヤーが用意するカスタムロール
- ギルドの検索
- 複数ギルドへの参加
- マッチメイキング
- 対戦相手を見つける
- レーティングやゲームモードといった検索条件に基づいたマッチメイク
- 盾職・回復職・攻撃職といった役割毎に一定人数でマッチメイク
- シーズン期間永続化されるマッチメイキング
- ランキング
- スコアやクリアタイムのランキングを実装可能
- ランキングは グローバル・クラスター・購読 のバリエーションを利用可能
- ランキングの順位に基づく報酬を設定可能
- シーズンランキングのような繰り返し毎にリセットされるランキングを設定可能
- スコアを加算して合計値を競うランキングを設定可能
- リアルタイム対戦
- パケットリレーサーバー
- GS2-Matchmaking と連動してルームの作成が可能
- 全員が退出するとシャットダウン
- ゲームサーバー起動時間に対して1分毎に課金
- 固定費用なし
- シーズンレーティング
- ブロンズ・シルバー・ゴールドのようなティアーを行ったり来たりするレーティング
- マッチメイキングされたプレイヤーが投票を行って多数決を取り、レーティング変化を実行
セッションではGS2が提供している様々な機能を駆け足で紹介いただきました。
ゲームの開発に必要なコア機能がほとんど提供されているのでは?というくらい情報量が半端なく多かったので、公式サイトの詳細情報へのリンクも併せてご紹介しています。
ご興味をお持ちいただけましたら、ぜひGS2社のサイトでもご確認を頂ければと思います。
Game Server Services マイクロサービス紹介
- 価格体系について、GS2は環境ごとの課金は実施せず、APIリクエスト回数に対して課金する方式なので、複数の環境にデプロイして利用することも可能
まとめ
実は当社でもGame Server Servicesを取り扱っております。
ご興味をお持ちいただけましたら、ぜひお問い合わせください。